/*public class lianxi {
    public static void main(String[] args) {
      Scanner scanner=new Scanner(System.in);
      int a=scanner.nextInt();
      int b=scanner.nextInt();
      int c=scanner.nextInt();
        System.out.println(max2(a,b));
        System.out.println(max3(a,b,c));
    }
    public static int max2(int x,int y){
        int max=x>y?x:y;
        return max;
    }
    public static int max3(int x,int y,int z){
        int max=max2(x,y);
        max=max>z?max:z;
        return max;
    }
}*/

/*public class lianxi{
    public static int max1(int x,int y){
        int max=x>y?x:y;
        return max;
    }
    public static double max2(double x,double y,double z){
        double max=0.0;
        max=x>y?x:y;
        return max=max>z?max:z;
    }
    public static void main(String[] args) {
        int a=1;
        int b=5;
        double c=2.0,d=3.4,e=4.9;
        System.out.println(max1(a,b));
        System.out.println(max2(c,d,e));
    }
}*/
//汉诺塔问题：把A杆上的盘子移到C杆上，C杆和A杆一样，盘子从下往上要是从大到小排列。（有中间量B杆）
public class lianXi{
    public static void move(char pos1,char pos2){
        //pos1已到pos2(a的盘子移到b)
        System.out.print(pos1+"->"+pos2+" ");
    }

    public static void hanNuoTa(int n,char pos1,char pos2,char pos3){
        //n表示要移动的盘子个数
        //pos1起始位置，pos2中转位置，pos3目标位置
        if(n==1){
            move(pos1,pos3);
        }
        else{
            hanNuoTa(n-1,pos1,pos3,pos2);
            //起始位置移动n-1个到中转位置
            move(pos1,pos3);//n-1个移动完，将最大的一个移动到目标位置
            //之后变为pos2时起始位置，pos3是目标位置，pos1中转位置，将n-1个盘，从pos2移动到pos3
            hanNuoTa(n-1,pos2,pos1,pos3);
        }
    }

    public static void main(String[] args) {
        System.out.println("A杆上只有一个盘");
            hanNuoTa(1,'A','B','C');
            System.out.println();
        System.out.println("A杆上只有两个盘");
            hanNuoTa(2,'A','B','C');
            System.out.println();
        System.out.println("A杆上只有三个盘");
            hanNuoTa(3,'A','B','C');
            System.out.println();
        System.out.println("A杆上只有四个盘");
            hanNuoTa(4,'A','B','C');
            System.out.println();
    }
}
